package com.chezhujie.www.service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.chezhujie.www.core.page.Pagination;
import com.chezhujie.www.domain.Czjadvertisementimg;
import com.chezhujie.www.domain.Czjawardon;
import com.chezhujie.www.persistence.CzjawardonMapper;
import com.chezhujie.www.utils.UUIDUtils;


@Service("czjawardonService")
public class CzjawardonService {
	@Autowired
	private CzjawardonMapper czjawardonMapper;
	
	/**
	 * 查询某个czj_advertisementImg  图片广告queryImgOrder
	 * @param param
	 * @return
	 */
	public Czjawardon queryImgOrder(Map<String,Object> param) {
		return czjawardonMapper.queryImgOrder(param);
	}	
	

	/**
	 * 查询某个czj_awardon 奖品线上
	 * @param param
	 * @return
	 */
	public Czjawardon getCzjawardon(Map<String,Object> param) {
		return czjawardonMapper.getCzjawardon(param);
	}
   
	/**
	 * 查询czj_awardon 奖品线上列表
	 * @return
	 */
	public Map<String,Object> getCzjawardonList(Map<String,Object> param) {
		Map<String,Object> returnMap = new HashMap<String,Object>();
		returnMap.put("totalCounts", czjawardonMapper.getTotalRows(param));
		returnMap.put("list", czjawardonMapper.getCzjawardonList(param));
		return returnMap;
	}
   
	/**
	 * 查询czj_awardon 奖品线上列表
	 * @return
	 */
	public  Pagination getCzjawardonList(Map<String,Object> param,int pageSize,Integer pageNo,String order,String sort) {
		Pagination p = new Pagination();
		p.setPageNo(pageNo);
		p.setPageSize(pageSize);
		p.setOrder(order);
		p.setSort(sort);
		param.putAll(p.toMap());
		int count=czjawardonMapper.getTotalRows(param);
		List<Czjawardon> list=	czjawardonMapper.getCzjawardonList(param);
	
		p.setList(list);
		p.setTotalCount(count);
		return p;
		
	}
	
	/**
	 * 查询czj_awardon 奖品线上列表全部
	 * @return
	 */
	public  List<Czjawardon> getCzjawardonListALL(Map<String,Object> param) {
		List<Czjawardon> list=	czjawardonMapper.getCzjawardonListALL(param);
		return list;		
	}	
	
	/**
	 * 查询czj_awardon 奖品线上列表全部
	 * @return
	 */
	public  List<String> getCzjawardonListStringALL(Map<String,Object> param) {
		List<String> list=	czjawardonMapper.getCzjawardonListStringALL(param);
		return list;		
	}
      
	/**
	 * 新增czj_awardon 奖品线上
	 * @param czjawardon
	 * @param param
	 */
	@Transactional
	public void insertCzjawardon(Czjawardon czjawardon) {
        if(czjawardon.getAwardonId() ==null || "".equals(czjawardon.getAwardonId())){
            czjawardon.setAwardonId(UUIDUtils.getUUID());
        }
        czjawardonMapper.insertCzjawardon(czjawardon);
	}
   
	/**
	 * 编辑czj_awardon 奖品线上
	 * @param czjawardon
	 * @param param
	 */
	@Transactional
	public void updateCzjawardon(Czjawardon czjawardon) {
		czjawardonMapper.updateCzjawardon(czjawardon);
	}
   
	/**
	 * 删除czj_awardon 奖品线上
	 * @param param
	 */    
	@Transactional
	public void deleteCzjawardon(List<String> awardonIdList) {
		for(String awardonId: awardonIdList){
	  		Map<String,Object> param = new HashMap<String,Object>();
	  		param.put("awardonId", awardonId);
	 	   czjawardonMapper.deleteCzjawardon(param);	  		
		}
	}
	
	/**
	 * 删除czj_awardon
	 * @param param
	 */    
	@Transactional
	public void deleteCzjawardonByR(Map<String,Object> param) {	 
	 	   czjawardonMapper.deleteCzjawardonByR(param);	  			
	}	
	
	/**
	 * 删除czj_awardon
	 * @param param
	 */    
	@Transactional
	public void deleteCzjawardonByAwardonId(Map<String,Object> param) {	 
	 	   czjawardonMapper.deleteCzjawardon(param);	  			
	}


    public Pagination getDistributionDetail(Map<String, Object> param, Integer pageSize, Integer pageNo, String sort, String order)  {
        if(pageSize==null){
            pageSize = 20;
        }
        if(pageNo==null){
            pageNo = 1;
        }
        Pagination p = new Pagination();
        p.setPageNo(pageNo);
        p.setPageSize(pageSize);
        p.setOrder(order);
        p.setSort(sort);
        param.putAll(p.toMap());
        int count=czjawardonMapper.getAwardonDetailTotal(param);
        List<Map<String,Object>> list=	czjawardonMapper.getAwardonDetail(param);
        Integer amount=0;
        Integer ext3 =0;
        Integer shengyu=0;
        for (Map<String, Object> map : list) {
            amount = (Integer)map.get("count")==null?0: (Integer)map.get("count");
            ext3 = (Integer)map.get("ext3")==null?0: (Integer)map.get("ext3");
            shengyu = amount-ext3;

            map.put("shengyu", shengyu);
        }
        p.setList(list);
        p.setTotalCount(count);
        return p;
    }

	//rouletteId
    public List<Czjawardon> getListEntity(Map<String, Object> param) {
		return czjawardonMapper.getListEntity(param);
	}

    public Czjawardon queryById(String awardonId) {
		return czjawardonMapper.queryById(awardonId);
	}
}